package ruifight.member.service.base;

import java.io.Serializable;
import java.util.List;


import com.github.pagehelper.PageInfo;


public interface BaseService<T1 ,T2 ,PK extends Serializable> {

	/**
     * 通过id删除
     */
    int deleteByPrimaryKey(PK p);
    
    /**
     * 通过条件删除
     */
    int deleteByExample(T2 example);
    
    /**
     *添加
     */
    int insert(T1 t);

    /**
     *不为空字段添加
     */
    int insertSelective(T1 t);

    /**
     *通过id查询
     */
    T1 selectByPrimaryKey(PK p);

    /**
     *通过id不为空字段修改
     */
    int updateByPrimaryKeySelective(T1 t);

    /**
     *通过id修改
     */
    int updateByPrimaryKey(T1 t);
    
    /**
     * 通过条件不为空字段修改
     */
    int updateByExampleSelective(T1 t, T2 example);

    /**
     * 通过条件修改
     */
    int updateByExample(T1 t, T2 example);
    
    /**
     * 通过条件查询数量
     * @param example
     * @return
     */
    int countByExample(T2 example);
    
    /**
     * 通过条件查询集合
     * @param example
     * @return
     */
    List<T1> selectByExample(T2 example);
    
    /**
     * 通过条件唯一查询
     * @param example
     * @return
     */
    T1 selectOneByExample(T2 example);
    /**
     * 分页查询
     * @param pageNum
     * @param pageSize
     * @param example
     * @return
     */
    PageInfo<T1> getPage(int pageNum, int pageSize,T2 example);
}
